package models

import (
	"time"
)

// User 对应数据库 Users 表，包含软删除字段 deleted_at 以及订阅状态
type User struct {
	ID         int        `gorm:"column:user_id;primaryKey;autoIncrement" json:"id"`
	Username   string     `gorm:"column:username;size:50;not null" json:"username"`
	Password   string     `gorm:"column:password;size:255;not null" json:"password"`
	FullName   string     `gorm:"column:full_name;size:100;" json:"full_name"`
	Role       string     `gorm:"column:role;type:varchar(50);not null;default:'开放推送'" json:"role"`
	OpenID     string     `gorm:"column:openid;size:255" json:"openid"`
	Email      string     `gorm:"column:email;size:100" json:"email"`
	Phone      string     `gorm:"column:phone;size:20" json:"phone"`
	Subscribed bool       `gorm:"column:subscribed;default:false" json:"subscribed"` // 是否订阅（true 为已订阅）
	CreateTime time.Time  `gorm:"column:create_time;autoCreateTime" json:"create_time"`
	UpdateTime time.Time  `gorm:"column:update_time;autoUpdateTime" json:"update_time"`
	DeletedAt  *time.Time `gorm:"column:deleted_at" json:"deleted_at"` // 软删除字段，NULL 表示未删除
}
